package com.yj.idempotence.util;



import io.netty.util.internal.StringUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils;

import java.text.ParseException;
import java.util.*;
import java.util.stream.Collectors;

/**
 * 常用工具
 */
public class CommonUtil {


    public static void main(String[] args) throws ParseException {
        // 1.java自带工具方法
        //  1.1List集合拼接成以逗号分割的字符串
        List <String> list = Arrays.asList("a","b","c");
        //  a、使用Stream流
        String s1 = (String) list.stream().collect(Collectors.joining(","));
        System.out.println(s1);
        //  b、使用String join的方法
        String join = String.join(",", list);
        System.out.println(join);

        // 2.比较两个字符串是否相等，忽略大小写
        String a = "abc";
        String b = "ABC";
        String c = a;
        if (a.equalsIgnoreCase(b)){
            System.out.println("相等");
        }
        // 3.比较两个对象是否相等
        System.out.println(Objects.equals(a,b));
        System.out.println(Objects.equals(a,c));

        // 4.两个list集合取交集
        List<String> list1 = new ArrayList<>();
        list1.add("a");
        list1.add("b");
        list1.add("c");
        List<String> list2 = new ArrayList<>();
        list2.add("b");
        list2.add("c");
        list2.add("d");
        list1.retainAll(list2);
        System.out.println(list1);

        // 5.common-lang3 StringUtils
        // 5.1 非空判断
        StringUtils.isEmpty(a);
        StringUtils.isNoneEmpty(a);
        StringUtils.isBlank(a); // 判空的时候，会去除字符串中的空白字符，比如空格、换行、制表符
        StringUtils.isNoneBlank(a);

        // 5.2 首字母转换成大写
        StringUtils.capitalize(a);
        System.out.println(a);

        // 5.3 重复拼接字符串
        String ab = StringUtils.repeat("ab", 2);
        System.out.println(ab);

        // 5.4 格式化日期
        // date 转为String
        String format = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");
        System.out.println(format);
        // String 转date
        Date date = DateUtils.parseDate(format, "yyyy-MM-dd HH:mm:ss");
        System.out.println(date);

        //
    }

}
